<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2024/10/14
  Time: 8:49
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<!--
    第一：解压标签库压缩包 - 得到两个jar包： jstl.jar、standard.jar
    第二：在项目中，添加依赖
    第三：在JSP中，添加 JSTL 标签库
    第四：使用 JSTL 标签库
        <前缀：标签名称 属性1=值 属性2=值 ...>
            内容
        </前缀：标签名称>
-->
<%@ include file="auth.jsp"%>

<html>
<head>
    <title>分页查询数据</title>
</head>
<body>
    <h1 align="center">动态条件分页查询</h1>

    <%-- <c:out value="Hello,World"/> --%>
    <div style="margin-bottom: 20px;text-align: center">
        <form action="pager_cond_more.do" method="get">
            商品名称：<input type="text" name="productName" value="${param.productName}">
            商品类型：<input type="text" name="productType" value="${param.productType}">
            <input type="submit" value="查询">
        </form>
    </div>

    <table border="1" width="80%" align="center">
        <!-- 标题行 -->
        <tr>
            <th>商品编号</th>
            <th>商品名称</th>
            <th>商品价格</th>
            <th>生产日期</th>
            <th>销量</th>
            <th>状态</th>
            <th>操作</th>
        </tr>


        <c:choose>
            <%-- 情况一：没有数据，则显示“数据为空” --%>
            <c:when test="${empty requestScope.pager.data}">
                <tr style="text-align: center;color: red;font-weight: bold">
                    <td colspan="7">数据为空</td>
                </tr>
            </c:when>
            <%-- 情况二：有数据，则循环遍历，显示数据行 --%>
            <c:otherwise>
                <c:forEach items="${requestScope.pager.data}" var="p">
                    <tr style="text-align: center">
                        <td>${p.productId}</td>
                        <td>${p.productName}</td>
                        <td>${p.productPrice}</td>
                        <td>${p.productDate}</td>
                        <td>${p.productSale}</td>
                        <td>${p.productStatus==1?'上架':'下架'}</td>
                        <td>下架|修改|删除</td>
                    </tr>
                </c:forEach>
            </c:otherwise>
        </c:choose>
    </table>


    <!-- 分页导航 -->
    <c:if test="${requestScope.pager.totalPageCount>=1}">
        <div style="text-align: center;margin-top: 20px">
        当前页：${requestScope.pager.currentPage} &nbsp;&nbsp;
        <!--
            EL表达式访问对象的属性，
            本质上就访问了该属性对应的 getter 方法
        -->
        共 ${requestScope.pager.totalPageCount} 页 &nbsp;






        <c:choose>

            <%-- 分页的第三种情况：只有一页数据 --%>
            <c:when test="${requestScope.pager.totalPageCount==1}">
                首页
                上一页
                下一页
                尾页
            </c:when>

            <%-- 分页的第一种情况：当前页为第一页 --%>
            <c:when test="${requestScope.pager.currentPage==1}">
                首页
                上一页

                <a href="pager_cond_more.do?cp=${requestScope.pager.currentPage+1}&productName=${param.productName}&productType=${param.productType}">下一页</a>
                <a href="pager_cond_more.do?cp=${requestScope.pager.totalPageCount}&productName=${param.productName}&productType=${param.productType}">尾页</a>
            </c:when>


            <%-- 分页的第二种情况：当前页为最后一页 --%>
            <c:when test="${requestScope.pager.currentPage==requestScope.pager.totalPageCount}">
                <a href="pager_cond_more.do?cp=1&productName=${param.productName}&productType=${param.productType}">首页</a>
                <a href="pager_cond_more.do?cp=${requestScope.pager.currentPage-1}&productName=${param.productName}&productType=${param.productType}">上一页</a>

                下一页
                尾页
            </c:when>

            <%-- 分页的第四种情况：当前页为中间页 --%>
            <c:otherwise>
                <a href="pager_cond_more.do?cp=1&productName=${param.productName}&productType=${param.productType}">首页</a>
                <a href="pager_cond_more.do?cp=${requestScope.pager.currentPage-1}&productName=${param.productName}&productType=${param.productType}">上一页</a>
                <a href="pager_cond_more.do?cp=${requestScope.pager.currentPage+1}&productName=${param.productName}&productType=${param.productType}">下一页</a>
                <a href="pager_cond_more.do?cp=${requestScope.pager.totalPageCount}&productName=${param.productName}&productType=${param.productType}">尾页</a>
            </c:otherwise>
        </c:choose>

    </div>
    </c:if>
</body>
</html>
